package com.heroCW.bodhiAttic.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.heroCW.bodhiAttic.dto.DishDto;
import com.heroCW.bodhiAttic.dto.SetmealDto;
import com.heroCW.bodhiAttic.entity.Setmeal;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SetmealService extends IService<Setmeal> {

    // 新增套餐，同时保存套餐和菜品的关联关系
    Boolean saveWithDish(SetmealDto setmealDto);

    // (批量)删除套餐，同时删除套餐和菜品的关联关系
    Boolean removeWithDish(@Param("ids") List<Long> ids);

    // (批量)修改套餐状态
    Boolean updateStatus(Integer status, @Param("ids") List<Long> ids);

    // 获取所有套餐信息并分页
    IPage<SetmealDto> getPage(int page, int pageSize, String name);

    // 获取所有套餐信息
    List<Setmeal> getList(Setmeal setmeal);

    // 修改套餐所有信息，同时修改套餐和菜品的关联关系
    Boolean updateWithDish(SetmealDto setmealDto);

    // 通过ID获取套餐信息,同时获取套餐和菜品的关联关系
    SetmealDto getByIdWithDish(Long id);

    // 通过套餐ID获取相关套餐的所有菜品信息
    List<DishDto> getSetmealDish(Long id);
}
